package com.hemerasolutions.v2trainer.component.interfaces.search;


import java.util.Date;
import java.util.List;

import com.hemerasolutions.v2trainer.component.interfaces.BaseComponentInterface;
import com.hemerasolutions.v2trainer.component.interfaces.detail.TrainingSystemDetailsCompInterface;
import com.hemerasolutions.v2trainer.component.interfaces.list.StepListCompInterface;
import com.hemerasolutions.v2trainer.delegate.interfaces.TrainingSystemSearchDelegateInterface;
import com.hemerasolutions.v2trainer.model.exercise.TemplateExercise;
import com.hemerasolutions.v2trainer.model.modality.Modality;
import com.hemerasolutions.v2trainer.model.training.Training;
import com.hemerasolutions.v2trainer.model.training.TrainingType;


public interface TrainingSystemSearchCompInterface extends BaseComponentInterface {

	public abstract void setTsDetails(TrainingSystemDetailsCompInterface tsDetails);

	public abstract TrainingSystemDetailsCompInterface getTsDetails();

	public abstract void setFoundTrainingSystems(List<Training> foundTrainingSystems);

	public abstract List<Training> getFoundTrainingSystems();

	public abstract void setTrainingSystemFindByStatus(boolean trainingSystemFindByStatus);

	public abstract boolean isTrainingSystemFindByStatus();

	public abstract void setTrainingSystemEndChangedAt(Date trainingSystemEndChangedAt);

	public abstract Date getTrainingSystemEndChangedAt();

	public abstract void setTrainingSystemBegChangedAt(Date trainingSystemBegChangedAt);

	public abstract Date getTrainingSystemBegChangedAt();

	public abstract void setTrainingSystemEndCreatedAt(Date trainingSystemEndCreatedAt);

	public abstract Date getTrainingSystemEndCreatedAt();

	public abstract void setTrainingSystemBegCreatedAt(Date trainingSystemBegCreatedAt);

	public abstract Date getTrainingSystemBegCreatedAt();

	public abstract void setFullModalitys(List<Modality> fullModalitys);

	public abstract List<Modality> getFullModalitys();

	public abstract void setFullTrainingTypes(List<TrainingType> fullTrainingTypes);

	public abstract List<TrainingType> getFullTrainingTypes();

	public abstract void setTrainingSystemFindByObs(String trainingSystemFindByObs);

	public abstract String getTrainingSystemFindByObs();

	public abstract void setTrainingSystemFindByDescription(String trainingSystemFindByDescription);

	public abstract String getTrainingSystemFindByDescription();

	public abstract void setTrainingSystemFindByName(String trainingSystemFindByName);

	public abstract String getTrainingSystemFindByName();

	public abstract void setFindTrainingSystemByModalitys(List<Modality> findTrainingSystemByModalitys);

	public abstract List<Modality> getFindTrainingSystemByModalitys();

	public abstract void setFindTrainingSystemByTrainingTypes(List<TrainingType> findTrainingSystemByTrainingTypes);

	public abstract List<TrainingType> getFindTrainingSystemByTrainingTypes();

	public abstract void setTsSearchDelegate(TrainingSystemSearchDelegateInterface tsSearchDelegate);

	public abstract TrainingSystemSearchDelegateInterface getTsSearchDelegate();

	public abstract void setSelTrainingSystem(Training selTrainingSystem);

	public abstract Training getSelTrainingSystem();

	public abstract void setTrainingSystem(Training trainingSystem);

	public abstract Training getTrainingSystem();

	public abstract void searchTrainingSystems();

	public abstract void changeFullTrainingTypes();

	public abstract void changeFullModalitysAll(org.primefaces.event.ToggleSelectEvent ev);

	public abstract void changeFullTrainingTypesAll(org.primefaces.event.ToggleSelectEvent ev);

	public abstract void toViewTrainingSystem();

	public abstract void addTrainingSystem();

	public abstract void refresh();

	public abstract void toConfigTrainingSystem();

	public abstract int getImportLevel();

	public abstract List<TemplateExercise> getTemplateExercises();

	public abstract void setImportLevel(int importLevel);

	public abstract void setTemplateExercises(List<TemplateExercise> templateExercises);

	public abstract TemplateExercise getSelTemplate();

	public abstract void setSelTemplate(TemplateExercise selTemplate);

	void toConfigTemplate();

	void transferSteps();

	StepListCompInterface getStepListHandler();

	void setStepListHandler(StepListCompInterface stepListHandler);

	void setExerciseGroupSearchComp(
			ExerciseGroupSearchCompInterface exerciseGroupSearchComp);

	ExerciseSearchCompInterface getExerciseSearchComp();

	void setExerciseSearchComp(ExerciseSearchCompInterface exerciseSearchComp);

	ExerciseGroupSearchCompInterface getExerciseGroupSearchComp();

}
